
    // Java Script数组是一个动态容量的哈希表
    // 1. 长度可以变化，也无需连续
    // 2. 类型可以不同
    // 3. 数组的基本操作 push pop shift unshift
    // 4.模拟数据结构: Stack(push/pop) Queue(push,shift) Deque(push pop shift unshift)
    // 5. 函数式编程： 映射map/压缩reduce/过滤filter/排序sort
    let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

   let  arr2 = arr.map(function (x) {
        return x * 3;
    });

    console.log("arr2=", arr2);
    console.log("sum=",arr.reduce(function (a, b) {
        return a + b;
    }, 0));//55
    console.log("10!=",arr.reduce(function (a, b) {
        return a * b;
    }, 1));//10！

    console.log("max=",arr.reduce(function (a, b) {
        return a>b?a:b;
    }));

    //arr.sort();//把所有元素视作字符串，按照字典升序
    arr.sort(function(a,b){
       return b-a;
    });//数值升序
    console.log(arr);
    //filter  n-> m

    let odds=arr.filter(function (x) {
        return x % 2 !== 0;
    });
    console.log("odds=",odds);
